www.gusucode.com > matlab从零到进阶程序与数据 > matlab从零到进阶程序与数据/第19章 回归分析/examp19_1_robustfit.m
%-------------------------------------------------------------------------- % 读取原始数据,调用robustfit函数作稳健回归 %-------------------------------------------------------------------------- %*****************************读取数据************************************** ClimateData = xlsread('examp19_1_1.xls'); x = ClimateData(:, 1); y = ClimateData(:, 5); %************************调用robustfit函数作稳健回归************************* [b, stats] = robustfit(x, y) stats.p %**************************绘制残差和权重的散点图**************************** figure; plot(stats.resid, stats.w, 'o') xlabel('残差') ylabel('权重') %***************绘制regress函数和robustfit函数对应的回归直线***************** [xsort, id] = sort(x); ysort = y(id); xdata = [ones(size(xsort, 1), 1), xsort]; b1 = regress(ysort, xdata); yhat1 = xdata*b1; b2 = robustfit(xsort, ysort); yhat2 = xdata*b2; plot(x, y, 'ko') hold on plot(xsort, yhat1, 'r--','linewidth',3) plot(xsort, yhat2, 'linewidth', 3) % 为图形加标注框 legend('原始数据散点','regress函数对应的回归直线','robustfit函数对应的回归直线'); xlabel('年平均气温(x)') ylabel('全年日照时数(y)')